'use strict';

/**
 * 摄像头schema
 */
const mongoose = require('mongoose'), Schema = mongoose.Schema;

const OPEN_STATUS = 1, CLOSE_STATUS = 2;
const ipcSchema = new Schema({
    _id: { type: String }, //编号，设备id
    d_nm: { type: String, required: true }, //设备名称
    d_tp: { type: String }, //IPC类型 0：大华，1：地平线 暂时默认0  2 巨龙抓拍机
    // d_ip: {type: String}, //IP地址
    // d_po: {type: String}, //端口号
    // d_ac: {type: String}, //用户名
    // d_pw: {type: String}, //密码
    // d_ch: {type: String}, //通道号channel，暂定为1
    // d_st: {type: String}, //码流类型subtype
    d_rt: { type: Schema.Types.Mixed }, //视频流地址 由以上字段拼接而成，以上字段改成以JSON格式存储在本字段
    d_sc: { type: String }, //订阅频道，从redis接受推送，目前门禁开启和展示app显示头像用的同一个频道，且频道ID就是设备编号。如有需求支持1：N扩展。
    d_sw: { type: String }, //是否具有门禁功能
    d_cp: { type: Schema.Types.Mixed }, //IPC配置
    c_id: { type: String }, //创建者
    m_id: { type: String }, //更新者
    d_address: {type: String},//设备地址

    /* 
        以下是巨龙设备专用字段
    */
    device_type: {type: Number, default:1 }, //设备抓拍机识别模式， 1设备-前端识别 2抓拍后端调算法识别-后端识别
    device_uuid: {type: String}, //设备uuid
    device_mac: {type: String}, //mac地址
    device_ip: {type: String}, //设备ip
    device_status: {type: Number, default:3},//设备状态 0正常 1异常 2关闭或再重启 3未配置
    device_num: {type: String}, //设备编号
    device_group: {type: String},//设备组
    s_n: {type: String}, //序列号
    channel_num: { 
        type: Number,
        // required: [true, '请输入通道数']
    },//通道数
    web_version: {type: String},//页面版本
    core_version: {type: String},//主程序版本
    version_date: {type: String},//版本日期
    http_version: {type: String},//HTTP协议版本
    http_date: {type: String},//HTTP协议版本日期
    register_session: {type: String},//注册Session
    alarm_switch: {type: Number, default: OPEN_STATUS}, //报警开关
    black_alarm_switch: {type: Number, default: OPEN_STATUS}, //黑名单报警开关
    white_alarm_switch: {type: Number, default: CLOSE_STATUS}, //白名单报警开关
    io_switch: {type: Number, default: CLOSE_STATUS}, //IO输出
    io_type: {type: Number},//io输入类型，1持续输出，2脉冲输出
    alarm_duration: {type: Number}, //报警持续时间(s)
    io_status_type: {type: Number}, //IO输出状态类型，1常开，2常闭
    recognition_mode: {type: Number}, //识别模式，1一直识别，2次数识别，3单张识别
    similarity_set: {type:Number}, //比对相似度, 1~100
    alarm_start_time: {type: String},//布防时间段
    alarm_end_time: {type: String},//布防时间段
    subnet_mask: {type: String},//子网掩码
    gateway: {type: String},//网关
    preferred_dns: {type: String},//首选DNS地址
    standby_dns: {type: String},//备用DNS地址

    // 设备所在教室信息
    group_id:{ type:String }, //集团id
    group_name:{ type:String }, //集团名称
    campus_id: { type:String}, //校区id
    campus_name:{type: String},//校区名称
    class_name:{type: String},//班级名称
    classroom_id:{type: String},//教室id
    classroom_name:{type: String},//教室名称
    classroom_num:{type: String},//教室编号
}, { timestamps: { createdAt: 'c_at', updatedAt: 'm_at' } });

module.exports = mongoose.model('IpcModel', ipcSchema, "ipc");
